package com.project.springboot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.project.springboot.entity.Student;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

/**
 * 学生表(Student)表服务接口
 * @author 朱正磊
 * @since 2023-08-16 00:00:20
 */
public interface StudentService extends IService<Student> {

    List<Student> getStudentList();

    void batchInsert();

    /**
     * description: 导出Excel（方式二）
     * @author 朱正磊
     * @date 2023-08-31 16:04:37
     * @param response 响应对象
     */
    void exportExcel2(HttpServletResponse response);

    /**
     * description: 新增一条学生数据
     * @author 朱正磊
     * @date 2024-05-23 13:41:44
     */
    void addStudent();

    /**
     * description: 新增一条学生数据
     * @author 朱正磊
     * @date 2025-10-22 09:19:05
     */
    void saveStudent();

    /**
     * description: 新增一条学生数据
     * @author 朱正磊
     * @date 2025-10-22 09:19:05
     */
    void createStudent();

    /**
     * description: 根据姓名查询学生
     * @author 朱正磊
     * @date 2024-06-21 13:12:44
     * @param name 姓名
     * @return 返回学生
     */
    Student getStudentByName(String name);

    /**
     * description: 根据姓名模糊查询学生集合
     * @author 朱正磊
     * @date 2025-05-13 15:44:16
     * @param name 姓名
     * @return 返回学生集合
     */
    List<Student> testCache(String name) throws ExecutionException;

    /**
     * description: 测试异步线程
     * @author 朱正磊
     * @date 2025-06-04 15:14:34
     * @param id 主键
     * @return 返回学生对象
     */
    Student selectById(Integer id);

    /**
     * description: 测试异步线程
     * @author 朱正磊
     * @date 2025-06-04 15:14:34
     * @return 返回异步任务结果
     */
    CompletableFuture<String> insertOne();

    /**
     * description: 批量保存
     * @author 朱正磊
     * @date 2025-06-11 13:24:51
     */
    void batchSave();

}
